home *** CD-ROM | disk | FTP | other *** search
Wrap
rem **************************************************************************** rem * rem * File: setup.mst rem * rem * Author: rem * rem * Purpose: Script file for MS setup engine. rem * rem * Change History: rem * rem * xx.6.95, CLN Add installation details for Flic player, and rem * Accusoft library. rem * 19.7.95, CLN Add extra installation details for Flic player. rem * 2.8.95, CLN Read PM icon caption from descriptor file rem * as per uninstall program. rem * 7.8.95, CLN Remove 'wave' & 'midi' volume levels, rem * add single 'volume' entry. rem * 7.8.95, CLN Add installation of On-line Registration rem * program. rem * 8.8.95, CLN Use icon in launch.exe - remove title.ico. rem * 10.8.95, CLN Add mechanism to display promo. rem * 12.8.95, CLN Begin tidying code. rem * 15.8.95, CLN Additional code tidying. rem * 17.8.95, CLN Add conditional code for encrypted discs. rem * 02.09.95, CLN Add QuickTime version checking. rem * 15.09.95, CLN Add DLL call to update system configuration. rem * Add code to display read-me file. rem * rem **************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Available Disk Space '$INCLUDE 'pmgrdde.inc' ''Program Manager DDE '$INCLUDE 'flagtowr.inc' ''FlagTower title values ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST ASKPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 'GLOBAL SizeReq& '' Total Disk Size required for installation GLOBAL WinDir$ ''Windows directory GLOBAL WinSysDir$ ''Windows system directory GLOBAL WinSys32Dir$ ''Win32 system directory GLOBAL MinorVer% ''Windows minor version number GLOBAL OnNT$ ''NT flag GLOBAL SrcDir$ ''Source directory GLOBAL CDDrive$ ''CD-Rom drive letter GLOBAL DbPath$ ''Database directory GLOBAL AVDest$ ''Directory to put AV engine libraries global isInstallQTW as integer ''----- External functions called by Video for Windows setup DECLARE FUNCTION ExitWindowsExec LIB "user" (Exec$, Param$) AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "iniupd.dll" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER ''----- External functions called by WinG setup DECLARE FUNCTION GetRealSystemDirectory LIB "setuphlp.dll" (szDir$, cbBuf%) AS INTEGER DECLARE FUNCTION IsWin32FileNewer LIB "setuphlp.dll" (szOrig$, szNew$) AS INTEGER DECLARE SUB RenameFilePlease LIB "setuphlp.dll" (szOrig$, szNew$) DECLARE FUNCTION RestartWindows LIB "setuphlp.dll" AS INTEGER ''----- Effects library functions used DECLARE FUNCTION DivertBackMessage LIB "avsetup.dll" (WinHandle%, InstHandle%) AS INTEGER DECLARE SUB MaxWindowArea LIB "avsetup.dll" (WinHandle%) DECLARE FUNCTION ShowBitmap LIB "avsetup.dll" (WinHandle%, szName$, nFx%, nFxTime%) AS INTEGER DECLARE FUNCTION SetFileAttribute LIB "avsetup.dll" (szName$, nMode%) AS INTEGER DECLARE FUNCTION setDOSFileAttr LIB "avsetup.dll" (szName$, nAttr%, nIsOverwrite%) AS INTEGER DECLARE FUNCTION getSystemRAM LIB "avsetup.dll" AS INTEGER DECLARE FUNCTION readTitleDescription LIB "avsetup.dll" (szDesc$, lenDesc%, szDescFile$) AS INTEGER DECLARE FUNCTION fnnGetQTWVersion LIB "qtw_vers.dll" (ourVersion&) AS INTEGER DECLARE FUNCTION CallModifyCONFIG LIB "confchk.dll" (WinHandle%) AS INTEGER ''----- Local functions DECLARE FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) AS INTEGER DECLARE FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) AS INTEGER DECLARE SUB Install DECLARE FUNCTION MakePath(szDir$, szFile$) AS STRING DECLARE SUB UpdateWinG32(szOrig$) global Path_AdvertRoot as string global Path_AdvertBinary as string global Path_AdvertEngine as string global Path_AdvertDatabase as string global Path_AdvertUtility as string global Path_TitleRoot as string global Path_TitleBinary as string global Path_TitleEngine as string global Path_TitleDatabase as string global Path_TitleUtility as string INIT: CUIDLL$ = "ftcuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" SrcDir$ = GetSymbolValue("STF_SRCDIR") 'Make sure the user's system can handle Video for Windows dummy% = CheckVideoSystem(MajorVer%, MinorVer%, Processor%) IF OnWindowsNT() THEN OnNT$ = "TRUE" END IF 'Read setup's .INF file szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ 'Divert paint messages of background window to our own routine dummy% = DivertBackMessage(HwndFrame(), HinstFrame()) MaxWindowArea(HwndFrame()) dummy% = ShowBitmap(HwndFrame(), SrcDir$+"logo.bmp",106,1000) WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: AVDest$ = Dir_DefaultInstall SetSymbolValue "EditTextIn", AVDest$ SetSymbolValue "EditTextOut", AVDest$ SetSymbolValue "EditFocus", "END" GETPATHL1: SetSymbolValue "DLGEVENT", "" sz$ = UIStartDlg(CUIDLL$, ASKPATH, "FEditDlgProc", 0, "") AVDest$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(AVDest$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSE IF sz$ = "EXIT" THEN GOSUB ASKQUIT END IF GOTO GETPATH END IF rem *** Prepare copy list ClearCopyList '$ifdef HasAdvert Path_AdvertRoot = AVDest$ + Dir_AdvertRoot Path_AdvertBinary = Path_AdvertRoot + Dir_Binary Path_AdvertEngine = Path_AdvertRoot + Dir_Binary Path_AdvertDatabase = Path_AdvertRoot + Dir_Database Path_AdvertUtility = Path_AdvertRoot + Dir_Utility '$endif Path_TitleRoot = AVDest$ + Dir_TitleRoot Path_TitleBinary = Path_TitleRoot + Dir_Binary Path_TitleEngine = Path_TitleRoot + Dir_Binary Path_TitleDatabase = Path_TitleRoot + Dir_Database Path_TitleUtility = Path_TitleRoot + Dir_Utility '' ------------------- Copy list for Video for Windows -------------------- ''Remove DCISVGA file RemoveFile WinSysDir$+"dcisvga.drv", cmoForce IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN 'These files not necessary on Windows NT AddSectionFilesToCopyList "VfW MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "VfW OLE2", SrcDir$, WinSysDir$ END IF AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW AVICodecs", SrcDir$, WinSysDir$ IF OnNT$ = "TRUE" THEN AddSectionFilesToCopyList "VfW NT MSVideo", SrcDir$, WinSys32Dir$ ENDIF '' --------------------- Copy list for WinG ----------------------- AddSectionFilesToCopyList "WinG runtime", SrcDir$, WinSysDir$ Dest1$ = MakePath (WinSysDir$,"Wing32.dll") Dest2$ = MakePath (WinSysDir$,"Wing32.xxx") RenameFilePlease Dest1$, Dest2$ '' ---------------------- Copy list for WinToon ----------------------- AddSectionFilesToCopyList "WinToon runtime", SrcDir$, WinSysDir$ '' --------------------- Copy list for MediaView ---------------------- AddSectionFilesToCopyList "MediaView runtime", SrcDir$, WinSysDir$ rem *** Copy list for QuickTime isInstallQTW = 0 qtwVersion& = 8748 s% = fnnGetQTWVersion( qtwVersion& ) if s% = 1 then isInstallQTW = 1 AddSectionFilesToCopyList "QuickTime 2.02 runtime", SrcDir$, WinSysDir$ endif '' ------------------------ Copy list for ADS ------------------------- AddSectionFilesToCopyList "ADS", SrcDir$, WinSysDir$ '' ------------------------ Copy list for AAPLAY ------------------------- AddSectionFilesToCopyList "AAPLAY Animation", SrcDir$, WinSysDir$ '' ------------------------ Copy list for Accusoft Pro Gold ------------------------- rem AddSectionFilesToCopyList "Accusoft Pro Gold", SrcDir$, WinSysDir$ '$ifdef IsEncrypted rem *** Copy list for C-Dilla AddSectionFilesToCopyList "C-Dilla system", SrcDir$, WinDir$ AddSectionFilesToCopyList "C-Dilla title", SrcDir$, Path_TitleBinary '$ifdef HasAdvert AddSectionFilesToCopyList "C-Dilla title", SrcDir$, Path_AdvertBinary '$endif '$endif '' --------------------- Copy list for AV ENGINE ---------------------- AddSectionFilesToCopyList Sect_EngineBinary, SrcDir$, Path_TitleBinary '$ifdef HasAdvert AddSectionFilesToCopyList Sect_EngineBinary, SrcDir$, Path_AdvertBinary '$endif rem *** Copy list for title AddSectionFilesToCopyList Sect_TitleBinary, SrcDir$, Path_TitleBinary AddSectionFilesToCopyList Sect_TitleDatabase, SrcDir$, Path_TitleDatabase AddSectionFilesToCopyList Sect_TitleUtility, SrcDir$, AVDest$ AddSectionFilesToCopyList Sect_TitleSystem, SrcDir$, WinSysDir$ AddSectionFilesToCopyList "Accusoft Pro Gold", SrcDir$, Path_TitleBinary '$ifdef HasAdvert AddSectionFilesToCopyList Sect_AdvertBinary, SrcDir$, Path_AdvertBinary AddSectionFilesToCopyList Sect_Advertdatabase, SrcDir$, Path_AdvertDatabase AddSectionFilesToCopyList "Accusoft Pro Gold", SrcDir$, Path_AdvertBinary '$endif '' -------- Check space on hard disk -------- SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF '' Perform install Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = WinDir$ + "\_msrstrt.exe" Batch$ = WinDir$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("An installation problem occured.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC rem *** Change file attribute of 'flagtowr.ttl' to "normal" so it is visible dummy% = setDOSFileAttr( Path_TitleUtility + FN_Description, 0, 1 ) dummy% = setDOSFileAttr( Path_AdvertUtility + FN_Description, 0, 1 ) SetRestartDir WinDir$ CopyFilesInCopyList UpdateWinG32 WinSysDir$ ''<-------------------- BACK UP INI FILES HERE !!! ----------------------> inia$ = MakePath(WinDir$, "win.ini") inib$ = MakePath(WinDir$, "win.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 inia$ = MakePath(WinDir$, "system.ini") inib$ = MakePath(WinDir$, "system.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 ''----------------- Update INI files for Video for Windows --------------- ''Updating WIN.INI and SYSTEM.INI ''Only update SYSTEM.INI on NT or next version of Windows for other codecs IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite if isInstallQTW = 1 then rem *** Update INI files for QuickTime CreateIniKeyValue "win.ini", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(WinSysDir$, "mciqtw.drv"), "SYSTEM.INI") rem *** Create QTW.INI ini$ = MakePath(WinDir$, "qtw.ini") CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite RemoveIniKey ini$, "video", "optimize", cmoNone endif rem Compatibility hacks. i% = WritePrivateProfileString("Macx", "DeviceBitmap", "OFF", "system.ini") CreateIniKeyValue "win.ini", "Mach", "DeviceBitmap", "off", cmoOverwrite rem *** Update INI files for AAPLAY CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "FullScreen", "AAVGA.DLL", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "DualScreen", "yes", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "Int2fSwitch", "no", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "WaveAudio", "c,522", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "flc", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "fli", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "aas", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "Animation1", "mciaap.drv", cmoOverwrite ''---------------- Create INI files for title ------------------ CDDrive$ = MID$(SrcDir$,1,1) CreateDir Path_TitleRoot, cmoNone CreateDir Path_TitleBinary, cmoNone CreateDir Path_TitleDatabase, cmoNone dummy% = CreateTitleINIFile( Path_TitleBinary+"\"+INI_Title, CDDrive$, Path_TitleDatabase ) '$ifdef HasAdvert CreateDir Path_AdvertRoot, cmoNone CreateDir Path_AdvertBinary, cmoNone CreateDir Path_AdvertDatabase, cmoNone dummy% = CreateTitleINIFile( Path_AdvertBinary+"\"+INI_Advert, CDDrive$, Path_AdvertDatabase ) '$endif rem *** Change file attribute of 'flagtowr.ttl' to Read-only+Hidden dummy% = setDOSFileAttr( Path_TitleUtility + FN_Description, 3, 1 ) '$ifdef HasAdvert dummy% = setDOSFileAttr( Path_AdvertUtility + FN_Description, 3, 1 ) '$endif rem *** create unitdb.mbf in title database directory to aid performance CopyFile Path_TitleDatabase+"\unitbase.mbf", Path_TitleDatabase+"\unitdb.mbf", cmoOverwrite, 0 '$ifdef HasAdvert CopyFile Path_AdvertDatabase+"\unitbase.mbf", Path_AdvertDatabase+"\unitdb.mbf", cmoOverwrite, 0 '$endif ''------ Register Video for Windows components ----- ''Do not register components not installed with Video for Windows on NT or next version of Windows. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite END IF ''NT and next version of Windows installation stop here. Run ("profdisp.exe") ''Profile display for Video for Windows dim PMI_Title as string dim PMI_Advert as string PMI_Title = string$( 110, 32 ) s% = readTitleDescription( PMI_Title, 110, Path_TitleUtility + FN_Description ) '$ifdef HasAdvert PMI_Advert = string$( 110, 32 ) s% = readTitleDescription( PMI_Advert, 110, Path_AdvertUtility + FN_Description ) '$endif rem *** Create Program Manager Group CreateProgmanGroup PMG_FlagTower, "", cmoNone ShowProgmanGroup PMG_FlagTower, 1, cmoNone rem *** Create Icon(s) s% = pmDeleteItem( PMI_Title ) '$ifdef HasAdvert s% = pmDeleteItem( PMI_Advert ) '$endif TitleDLL$ = Path_TitleBinary+"\"+DLL_Title Launch$ = Path_TitleBinary+"\LAUNCH.EXE " '$ifdef IsEncrypted Other$ = Path_TitleBinary+"\ZLAUNCH.EXE "+","+ str$( Icon_Title ) +",0,0,"+Path_TitleBinary '$else Other$ = Launch$+","+ str$( Icon_Title ) +",0,0,"+Path_TitleBinary '$endif CreateProgmanItem PMG_FlagTower, PMI_Uninstall, AVDest$ + "\uninstal.exe", "", cmoOverwrite '$ifndef IsPromo CreateProgmanItem PMG_FlagTower, PMI_OnLineReg, AVDest$ + "\onlinreg.exe", "", cmoOverwrite '$endif CreateProgmanItem PMG_FlagTower, PMI_Title, Launch$+TitleDLL$ , Other$ , cmoOverwrite '$ifdef HasAdvert CreateProgmanItem PMG_StartUp, PMI_Advert, Path_AdvertBinary + "\runpromo.exe", "", cmoOverwrite '$endif '$ifdef HasAdvert TitleDLL$ = Path_AdvertBinary+"\"+DLL_Advert Launch$ = Path_AdvertBinary+"\LAUNCH.EXE " '$ifdef IsEncrypted Other$ = Path_AdvertBinary+"\ZLAUNCH.EXE "+","+ str$( Icon_Advert ) +",0,0,"+Path_AdvertBinary '$else Other$ = Launch$+","+ str$( Icon_Advert ) +",0,0,"+Path_AdvertBinary '$endif CreateProgmanItem PMG_FlagTower, PMI_Advert, Launch$+TitleDLL$ , Other$ , cmoOverwrite '$endif i% = CallModifyCONFIG( HwndFrame() ) Run ( "notepad " + SrcDir$ + "readme.txt" ) END SUB ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' Miscellaneous Functions ' -------------------------------------------------------------------------------------------- '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION SUB UpdateWinG32(szOrig$) STATIC ' ' Check the version of wing32.dll since cannot get version ' checking for Win32 apps from Win16 ' FileNew$ = MakePath(szOrig$, "wing32.dll") FileOrig$ = MakePath(szOrig$, "wing32.xxx") IF IsWin32FileNewer(FileOrig$, FileNew$) THEN RemoveFile FileOrig$, cmoForce ELSE RemoveFile FileNew$, cmoForce RenameFilePlease FileOrig$, FileNew$ END IF END SUB FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) STATIC AS INTEGER ramSize% = getSystemRAM() ramSizeStr$ = str$( ramSize% ) ramSizeStr$ = ltrim$( ramSizeStr$ ) CreateIniKeyValue szINI$, "METRICS", "CDROM", szCD$ , cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "RAM", ramSizeStr$, cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "VOLUME", "5" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "ROUTING", szDbPath$+"\ROUTING.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "RUNTIME", szDbPath$+"\RUNTIME.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "UNITBASE", szDbPath$+"\UNITBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "FILEBASE", szDbPath$+"\FILEBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "TIMELINE", szDbPath$+"\TL_BASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "GCACHE", szDbPath$+"\GCACHE.MBF" , cmoOverwrite CreateTitleINIFile = 0 END FUNCTION FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) STATIC AS INTEGER 'Check if system have necessary processor and version of Windows running to install Video for Windows ''Video for Windows tests IF WinMajVer% < 3 OR (WinMajVer% = 3 AND WinMinVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF 'Prevents installation on 286 IF ProcType% < 3 THEN i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF ' Use Wowexec to determine version of NT. 3.1 did not stamp wowexec and wow returns 3.1 as version IF OnWindowsNT() THEN WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe") IF WowVersion$ = "" THEN i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF END IF END FUNCTION